// 入口文件
console.log('OK');
import Vue from 'vue'

// 导入路由
import VueRouter from 'vue-router'
Vue.use( VueRouter )
import router from './router.js'


// 导入app根组件
import app from './App.vue'

// 按需导入Mint-UI中的组件
import { Header,Swipe, SwipeItem,Button,Lazyload } from 'mint-ui'
Vue.component( Header.name, Header );
Vue.component(Swipe.name, Swipe);
Vue.component(SwipeItem.name, SwipeItem);
Vue.component(Button.name, Button);
Vue.use(Lazyload);


import Vuex from 'vuex'
Vue.use(Vuex)

var oldcar = JSON.parse( localStorage.getItem('car') || '[]' );

var store = new Vuex.Store({
	state:{
		// {id:商品id，count:购买数量，price:单价，selected：true}
		car:oldcar
	},
	mutations:{
		addToCar( state, goodsinfo ){
			// 点击购物车，把商品信息保存到store中的car上
			// 分析
			// 如果购物车中有这个商品，那么久更新数量
			// 如果没有，就把商品数据，push到car中
			
			// 假设购物车中没有此商品
			var flag = false;

			state.car.some( item=>{
				if( item.id == goodsinfo.id ){
					item.count += parseInt( goodsinfo.count );

					flag = true;
					return true;
				}
			} )
			if( !flag ){
				state.car.push(goodsinfo);
			}

			// 当更新car之后，把cr数组存储到localStorage中
			
			localStorage.setItem('car', JSON.stringify( state.car ))
		},
		removeFromCar( state, id ){
			state.car.some( ( item, i )=>{
				if( item.id == id ){
					state.car.splice( i,1 );
					console.log(item.id);
					return true;
				}
				else{
					console.log("删除失败");
				}
			})
			localStorage.setItem('car', JSON.stringify( state.car ))

		}

	},
	getters:{
		getAllCount( state ){
			var c = 0;
			state.car.forEach( item=>{
				c += item.count;
			})
			return c;
		}		
	}
})

// 图片预览插件
import VuePreview from 'vue-preview'
Vue.use(VuePreview)

// 导入MUI样式
import './lib/mui/css/mui.min.css'
// 额外图标样式
import './lib/mui/css/icons-extra.css'

var vm = new Vue({
	el:'#app',
	render:function(e){
		return e(app);
	},
	router,
	store
})